package com.gitee.mp.infra.utils;

import com.gitee.mp.domain.definition.CollectionDefinition;
import com.gitee.mp.extend.CollectionChangeable;

/**
 * 集合名称获取器
 *
 * @author hongda.li
 */
public final class CollectionNameUtils {
    private CollectionNameUtils() {
    }

    /**
     * 获取集合名称
     *
     * @param collectionName 原始集合名称
     * @return 集合名称
     */
    public static String fetchCollectionName(final String collectionName) {
        return ApplicationContextUtils.findBeanFromCache(CollectionChangeable.class).changeName(collectionName);
    }

    /**
     * 通过集合定义信息获取集合名称
     *
     * @param definition 集合定义信息
     * @return 集合名称
     */
    public static String fetchCollectionName(final CollectionDefinition definition) {
        return fetchCollectionName(definition.getCollectionName());
    }
}
